/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.unmsm.fisi.ceiecbt.app.servlets;

import java.io.*;
import java.net.*;

import javax.ejb.EJB;
import javax.servlet.*;
import javax.servlet.http.*;

import pe.edu.unmsm.fisi.ceiecbt.ejb.entidad.ComtbUsuario;
import pe.edu.unmsm.fisi.ceiecbt.ejb.entidad.ComtbTipoUsuario;
import pe.edu.unmsm.fisi.ceiecbt.ejb.entidad.ComtbTipoDocumento;
import pe.edu.unmsm.fisi.ceiecbt.ejb.beans.ComtbUsuarioFacadeRemote;

/**
 *
 * @author Davis
 */
public class RegistrarUsuario extends HttpServlet {
    
    ComtbUsuario usuarioEntidad;
    ComtbTipoDocumento documento;
    ComtbTipoUsuario tipoUsuario;
    @EJB
     private ComtbUsuarioFacadeRemote combtemp;
    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
   
 
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
     // processRequest(request, response);
        request.setAttribute("pagina", "3");        
       pe.edu.unmsm.fisi.ceiecbt.app.utiles.redireccion.muestraJSP(request, response, "Registro/registrarUsuario.jsp");
    } 

   
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
 
        String usuario = request.getParameter("usuario");
        System.out.println("usuario "+usuario );
        int existe = combtemp.findByID(usuario);
       
        if(existe==1){
             request.setAttribute("pagina", "3");     
            request.setAttribute("Existe", "1");
            pe.edu.unmsm.fisi.ceiecbt.app.utiles.redireccion.muestraJSP(request, response, "Registro/registrarUsuario.jsp");
        }else{
            //registrar datos
            request.setAttribute("pagina", "3");
            
            
           
            
            String pass1 = (String)request.getParameter("password");
            String pass2 = (String)request.getParameter("password1");
           
            if(pass1.equals(pass2)){
                 request.setAttribute("Existe", "0");
                tipoUsuario = new ComtbTipoUsuario();
                documento = new ComtbTipoDocumento();
                usuarioEntidad = new ComtbUsuario();

                documento.setTipodvCodTipo((String)request.getParameter("tipo"));
                tipoUsuario.setTiusuvCodTipoUsuario("usuario");
                usuarioEntidad.setTiusuvCodTipoUsuario(tipoUsuario);
                usuarioEntidad.setTipodvCodTipo(documento);
                usuarioEntidad.setUsuarvApellidos((String)request.getParameter("apellidos"));
                usuarioEntidad.setUsuarvClave(pass1);
                
                ComtbUsuario tempo = combtemp.getLastCode().get(0);
                
                int lastCodigoUser = codigo(tempo.getUsuarvCodUsuario());
                
                lastCodigoUser++;                
                usuarioEntidad.setUsuarvCodUsuario("A"+nuevoCod(lastCodigoUser));
                usuarioEntidad.setUsuarvCorreo((String)request.getParameter("correo"));
                usuarioEntidad.setUsuarvNombres((String)request.getParameter("nombres"));
                usuarioEntidad.setUsuarvNumDocu((String)request.getParameter("numero"));
                usuarioEntidad.setUsuarvUsuario((String)request.getParameter("usuario"));

                 combtemp.create(usuarioEntidad);
                 request.getSession(true).setAttribute("usuario",usuarioEntidad.getUsuarvUsuario() );
                 
                System.out.println("usuario registrado satisfactoriamente");
            }else{
                 request.setAttribute("Existe", "2");
            
            }            
            pe.edu.unmsm.fisi.ceiecbt.app.utiles.redireccion.muestraJSP(request, response, "Registro/registrarUsuario.jsp");
        
        }
        
        
        
    }
    
    public int codigo (String codigo){
        int codsolo=0;
        codsolo = Integer.parseInt(codigo.substring(1, 6));
        return codsolo;
    }
    
    public String nuevoCod(int cod){
        
        String cd=""+cod;
        
        
        if(cd.length()>0){
            if(cd.length()>1){
                if(cd.length()>2){
                    if(cd.length()>3){                        
                        if(cd.length()>4){      
                            if(cd.length()==5){
                                cd="0"+cd;
                            }
                        }else{
                            cd="00"+cd;
                        }    
                    }
                }else{
                     cd="000"+cd;
                }
                
            }else{
                 cd="0000"+cd;
            }           
            
        }else{
            cd="00000"+cd;
        }
            
        
        return cd;
    }

    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
